// #include <stdio.h>
// #include <stdlib.h>
// #include <string.h>
// #include <assert.h>
//
// typedef struct Node {
//     int data;
//     struct Node *next;
// }Node;
//
//
// Node* create_list() {
//     Node* head = (Node*)malloc(sizeof(Node));
//     assert(head != NULL);
//     head->data = 0;
//     head->next = NULL;
//     return head;
// }
//
// //创建节点 创建结构体变量 把数据加工成节点形式
// Node* create_node(int data) {
//     Node* node = (Node*)malloc(sizeof(Node));
//     assert(node != NULL);
//     node->data = data;
//     node->next = NULL;
//     return node;
// }
//
// //有序链表的构建
// void print_list(Node* head) {
//     assert(head != NULL);
//     //因为表头不存放数据 所以是next
//     Node* temp = head->next;
//     while (temp != NULL) {
//         printf("%d\n", temp->data);
//         temp = temp->next;
//     }
// }
// //链表归并
// //依次遍历两个链表 采用有序插入即可
// // 类似数组的归并
// void mergeLis5(Node* result,Node* one,Node* two) {
//     Node* first = one->next;
//     Node* second = two->next;
//     Node* tailNode = result;
//     while (first != NULL && second != NULL) {
//         if (first->data < second->data) {
//             tailNode->next = first;
//         }else {
//             tailNode->next = second;
//         }
//     }
//     if (first != NULL) {
//         tailNode->next = first;
//     }
//     if (second != NULL) {
//         tailNode->next = second;
//     }
// }
// //链表的翻转
// //笨方法 变量链表 采用表头发插入
// void reverse_list(Node* head) {
//     Node* temp = head->next;
//     Node* prev = NULL;
//     Node* next = NULL;
//     while (temp != NULL) {
//         next = temp->next;
//         temp->next = prev;
//         prev = temp;
//         temp = next;
//     }
//     head->next = prev;
// }
//
// void push_sort(Node* head,int data) {
//     assert(head != NULL);
//     Node* node = create_node(data);
//     Node* temp = head->next;
//     Node* prev = head;
//     while (temp != NULL && temp->data < data) {
//         prev = temp;
//         temp = temp->next;
//     }
//     prev->next = node;
//     node->next = temp;
// }
//
// int main() {
//     Node* head = create_list();
//     push_sort(head,1);
//     push_sort(head,2);
//     push_sort(head,3);
//     push_sort(head,2);
//     print_list(head);
//     reverse_list(head);
//     print_list(head);
//
//
//     return 0;
// }